package com.xinfu.newproject.view;

import android.content.Context;

import com.xinfu.newproject.bean.certifition.AddRoomBean;
import com.xinfu.newproject.bean.certifition.QeuryRoomBean;
import com.xinfu.newproject.bean.certifition.ResidentCertificationBean;
import com.xinfu.newproject.bean.certifition.UntyingBean;
import com.xinfu.newproject.bean.community.ExistCommunityBean;
import com.xinfu.newproject.bean.community.GetCommunityBean;
import com.xinfu.newproject.bean.community.InsertCommunityBean;
import com.xinfu.newproject.bean.complaint.bean.ComplaintDetailBean;
import com.xinfu.newproject.bean.complaint.bean.ComplaintEvaluateBean;
import com.xinfu.newproject.bean.complaint.bean.ComplaintRecordBean;
import com.xinfu.newproject.bean.complaint.bean.SubmitComplaintBean;
import com.xinfu.newproject.bean.home.bean.GetAppIconBean;
import com.xinfu.newproject.bean.login.LoginBean;
import com.xinfu.newproject.bean.matter_repair.AddRepairBean;
import com.xinfu.newproject.bean.matter_repair.QueryRepairPartsBean;
import com.xinfu.newproject.bean.matter_repair.RepairDetailBean;
import com.xinfu.newproject.bean.matter_repair.RepairRecordBean;
import com.xinfu.newproject.bean.matter_repair.bean.RepairCountBean;
import com.xinfu.newproject.bean.matter_repair.bean.RepairEvaluateBean;
import com.xinfu.newproject.bean.meter.bean.AddUserMeterBean;
import com.xinfu.newproject.bean.meter.bean.CheckMeterCodeBean;
import com.xinfu.newproject.bean.meter.bean.MeterListBean;
import com.xinfu.newproject.bean.park_bean.bean.AddMonthCarBean;
import com.xinfu.newproject.bean.park_bean.bean.CheckMonthParkBean;
import com.xinfu.newproject.bean.park_bean.bean.FeeListBean;
import com.xinfu.newproject.bean.park_bean.bean.GetMonthCarListBean;
import com.xinfu.newproject.bean.park_bean.bean.GetParkingBean;
import com.xinfu.newproject.bean.park_bean.bean.MonthCarPayBean;
import com.xinfu.newproject.bean.park_bean.bean.PaymentsBean;
import com.xinfu.newproject.bean.park_bean.bean.TempPayBean;
import com.xinfu.newproject.bean.pay.PayBean;
import com.xinfu.newproject.bean.pay.bean.PayCostBean;
import com.xinfu.newproject.bean.paycost.bean.ComputeParkingBean;
import com.xinfu.newproject.bean.paycost.bean.GetBillByTypeBean;
import com.xinfu.newproject.bean.paycost.bean.QueryTypesBean;
import com.xinfu.newproject.bean.person.bean.PersonBean;
import com.xinfu.newproject.bean.up_image.UpImageBean;

import java.util.List;

import io.reactivex.disposables.Disposable;

public class IView {
    /**
     * 判断手机是否已注册
     */
    public interface IPhoneView {
        String getUserName();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void toOtherActivity(int fragment);
    }

    /**
     * 注册账号
     */
    public interface IRegisterView {
        String getUserName();

        String getSMSCode();

        String getPassword();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void toOtherActivity(int fragment, LoginBean.ResultBean resultBean);
    }

    /**
     * 注册账号
     */
    public interface ILoginView {
        String getUserName();

        String getPassword();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void toOtherActivity(LoginBean loginBean);
    }

    /**
     * 获取验证码
     */
    public interface ISMSCodeView {
        String getUserName();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(String codeMsg);
    }

    /**
     * 获取首页内容
     */
    public interface IAppIconView {
        String header();

        String userId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getData(GetAppIconBean getAppIconBean);
    }

    /**
     * 修改个人信息
     */
    public interface IUpPersonView {
        String header();

        String userId();

        String realname();

        String avatar();

        Integer sex();

        String phone();

        String projectId();

        String tenantId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getData(PersonBean personBean);
    }

    /**
     * 获取小区
     */
    public interface IGetCommunityView {
        String header();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getData(GetCommunityBean getCommunityBean);
    }

    /**
     * 查询已有小区
     */
    public interface IExistCommunityView {
        String header();

        String userId();

        String auditRes();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getData(ExistCommunityBean existCommunityBean);
    }

    /**
     * 新增小区
     */
    public interface IInsertCommunityView {
        String header();

        String userId();

        String projectId();

        String tenantId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void insertCommunity(InsertCommunityBean community);
    }

    /**
     * 查询房间号
     */
    public interface IQueryRoomView {
        String header();

        String projectId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        //        void showProgress();
//        void hideProgress();
        void getData(QeuryRoomBean qeuryRoomBean);
    }

    /**
     * 添加房产
     */
    public interface IAddRoomView {
        String header();

        String projectId();

        String userId();

        String userName();

        String roomId();

        String applyName();

        String applyTel();

        String address();

        Integer idType();

        String imgUrl();

        String applyCusName();

        String applyCusTel();

        String area();

        void showToast(String content);

        void showProgress();

        void hideProgress();

        void closeDispose(Disposable disposable);

        void getData(AddRoomBean addRoomBean);
    }

    /**
     * 解除房产
     */
    public interface IUntyingView {
        String header();

        String id();

        void showToast(String content);

        void showProgress();

        void hideProgress();

        void closeDispose(Disposable disposable);

        void getData(UntyingBean untyingBean);
    }

    /**
     * 查询已绑定房产
     */
    public interface IQueryPropertyView {
        String header();

        String userId();

        String auditRes();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void getData(ResidentCertificationBean residentCertificationBean);
    }

    /**
     * 获取报修部位
     */
    public interface IQueryRepairPartsView {
        String header();

        String userId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void getData(QueryRepairPartsBean queryRepairPartsBean);
    }

    /**
     * 查询报修记录
     */
    public interface IRepairRecordView {
        String header();

        String userId();

        String repairId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void getData(RepairRecordBean repairRecordBean);

        void getData(RepairDetailBean repairDetailBean);

        void getData(RepairCountBean repairCountBean);
    }


    /**
     * 上传图片
     */
    public interface IUpImageView {
        String header();

        List<String> imageList();

        Context context();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void getData(UpImageBean upImageBean);
    }

    /**
     * 提交报修
     */
    public interface ISubmitRepairView {
        String header();

        String userId();

        String userName();

        String contents();

        String mobile();

        String repairDate();

        String attachFile();

        String repairPartId();

        int repairWay();

        String repairId();

        String reviewContent();

        String bespeakFromTime();

        String bespeakToTime();

        int tenantId();

        String projectId();

        String roomId();

        int repairArea();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void getData(AddRepairBean addRepairBean);

        void getData(RepairEvaluateBean repairEvaluateBean);
    }

    /**
     * 报修支付
     */
    public interface IPayView {
        String header();

        String mobile();

        String payType();

        String billType();

        String roomId();

        String payFee();

        String repairOrder();

        String userId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(PayBean payBean);
    }

    /**
     * 物业支付
     */
    public interface IPayPropertyView {
        String header();

        String billType();

        String billids();

        double payFee();

        String name();

        String mobile();

        String roomId();

        String userId();

        String payType();

        String invoiceName();

        String invoiceAddress();

        String invoiceMobile();

        String invoiceEmail();

        String invoiceAccount();

        String invoiceEin();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(PayCostBean payCostBean);


    }

    /**
     * 缴费记录
     */
    public interface IPayRecordsView {
        String header();

        String userId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(String payRecordsBean);

    }
    /********************************************************************************************************************************************************************************************/
    /**
     * 停车场查询
     */
    public interface IParkingView {
        String header();

        String userId();

        String parkInfoId();

        String carId();

        Integer carType();

        String projectId();

        String exclusiveFlag();

        String monthCarType();

        String roomId();

        String owner();

        String mobile();

        String images();

        String remark();

        Integer idType();

        String filed1();

        String id();

        String startTime();

        String orderId();

        String licensePlate();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(GetParkingBean getParkingBean);

        void getMsg(CheckMonthParkBean checkMonthParkBean);

        void getMsg(AddMonthCarBean addMonthCarBean);

        void getMsg(GetMonthCarListBean getMonthCarListBean);

        void getMsg(PaymentsBean paymentsBean);

        void getMsg(ComputeParkingBean computeParkingBean);

        void getMsg(FeeListBean feeListBean);
    }

    /**
     * 停车缴费支付
     */
    public interface IAppIntoPayView {
        String header();

        String userId();

        String carId();

        Integer carType();

        String parkCarId();

        String startTime();

        Integer num();

        Integer payAmount();

        String payMemo();

        String mobile();

        String projectId();

        Integer tenantId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(MonthCarPayBean monthCarPayBean);
    }

    /**
     * 临停车缴费支付
     */
    public interface ITempPayView {
        String header();

        String userId();

        String mobile();

        String carType();

        String carId();

        String PKName();

        Integer payAmount();
        String PKID();

        String tempOrderNo();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(TempPayBean tempPayBean);
    }
    /********************************************************************************************************************************************************************************************/
    /**
     * 投诉
     */

    public interface IComplaintView {
        String header();

        String userId();

        String type();

        String name();

        String telephone();

        String picture();

        String content();

        String projectId();

        String complaintId();

        String tenantId();

        Integer status();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getMsg(SubmitComplaintBean submitComplaintBean);

        void getMsg(ComplaintRecordBean complaintRecordBean);

        void getMsg(ComplaintDetailBean complaintDetailBean);

        void getMsg(ComplaintEvaluateBean complaintEvaluateBean);
    }
/********************************************************************************************************************************************************************************************/
    /**
     * 查询房间号
     */
    public interface IPayCostView {
        String header();

        String type();

        String roomId();

        String cusOrRent();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getData(QueryTypesBean queryTypesBean);

        void getData(GetBillByTypeBean getBillByTypeBean);
    }
/********************************************************************************************************************************************************************************************/
    /**
     * 手动添加水电表
     */
    public interface IMeterView {
        String header();

        String userId();

        String meterCode();

        String meterType();

        String projectId();

        String meterId();

        void showToast(String content);

        void closeDispose(Disposable disposable);

        void showProgress();

        void hideProgress();

        void getData(AddUserMeterBean addUserMeterBean);

        void getData(CheckMeterCodeBean checkMeterCodeBean);

        void getData(MeterListBean meterListBean);
    }

}
